package com.yanqu.road.logic.pb;

import com.yanqu.road.entity.union.UnionBaseInfo;
import com.yanqu.road.logic.helper.UnionHelper;
import com.yanqu.road.pb.union.UnionProto;
import com.yanqu.road.utils.string.StringUtils;

import java.math.BigInteger;

public class UnionBasePb {
    public static UnionProto.UnionBaseTempMsg.Builder parseUnionBaseTempMsg(UnionBaseInfo unionBaseInfo) {
        if (null == unionBaseInfo) {
            return null;
        }
        UnionProto.UnionBaseTempMsg.Builder msg = UnionProto.UnionBaseTempMsg.newBuilder();
        msg.setUnionAliasId(unionBaseInfo.getUnionAliasId());
        msg.setUnionName(unionBaseInfo.getUnionName());
        msg.addAllUnionFlag(UnionHelper.getUnionFlag(unionBaseInfo));
        msg.setExperience(unionBaseInfo.getExperience());
        msg.setMemberCount(unionBaseInfo.getMemberCount());
        msg.setIsAllowRandomJoin(unionBaseInfo.isAllowRandomJoin());
        msg.setTotalEarnSpeed(unionBaseInfo.getTotalEarnSpeed().toString());
        msg.setMasterUserId(unionBaseInfo.getMasterUserId());
        msg.setMasterNickName(unionBaseInfo.getMasterNickName());
        msg.setMasterVipExp(unionBaseInfo.getMasterVipExp());
        msg.setMasterDecoration(unionBaseInfo.getMasterDecoration());
        msg.setServerId(unionBaseInfo.getServerId());
        msg.setHideMasterVipAndAddress(unionBaseInfo.getHideVipAndAddress());
        msg.setSex(unionBaseInfo.getSex());
        msg.setCross(unionBaseInfo.isCross());
        msg.setHonerPoint(unionBaseInfo.getHonors());
        msg.setTotalAbility(unionBaseInfo.getTotalPatronsAbility().toString());
        return msg;
    }

    public static UnionBaseInfo parseUnionBaseInfo(UnionProto.UnionBaseTempMsg unionBaseTempMsg) {
        if (null == unionBaseTempMsg) {
            return null;
        }
        UnionBaseInfo unionBaseInfo = new UnionBaseInfo();
        unionBaseInfo.setUnionAliasId(unionBaseTempMsg.getUnionAliasId());
        unionBaseInfo.setUnionName(unionBaseTempMsg.getUnionName());
        if(unionBaseTempMsg.getUnionFlagCount() > 1){
            unionBaseInfo.setUnionFlagStr(StringUtils.listToString(unionBaseTempMsg.getUnionFlagList(), StringUtils.SEPARATOR));
        }else if (unionBaseTempMsg.getUnionFlagCount() > 0){
            unionBaseInfo.setUnionFlag(unionBaseTempMsg.getUnionFlag(0));
        }
        unionBaseInfo.setExperience(unionBaseTempMsg.getExperience());
        unionBaseInfo.setMemberCount(unionBaseTempMsg.getMemberCount());
        unionBaseInfo.setAllowRandomJoin(unionBaseTempMsg.getIsAllowRandomJoin());
        if (!StringUtils.isNullOrEmpty(unionBaseTempMsg.getTotalEarnSpeed())) {
            unionBaseInfo.setTotalEarnSpeed(new BigInteger(unionBaseTempMsg.getTotalEarnSpeed()));
        }
        if (!StringUtils.isNullOrEmpty(unionBaseTempMsg.getTotalAbility())) {
            unionBaseInfo.setTotalPatronsAbility(new BigInteger(unionBaseTempMsg.getTotalAbility()));
        }
        unionBaseInfo.setMasterUserId(unionBaseTempMsg.getMasterUserId());
        unionBaseInfo.setMasterNickName(unionBaseTempMsg.getMasterNickName());
        unionBaseInfo.setMasterVipExp(unionBaseTempMsg.getMasterVipExp());
        unionBaseInfo.setMasterDecoration(unionBaseTempMsg.getMasterDecoration());
        unionBaseInfo.setServerId(unionBaseTempMsg.getServerId());
        unionBaseInfo.setSex(unionBaseTempMsg.getSex());
        unionBaseInfo.setCross(unionBaseTempMsg.getCross());
        unionBaseInfo.setHideVipAndAddress(unionBaseTempMsg.getHideMasterVipAndAddress());
        unionBaseInfo.setHonors(unionBaseTempMsg.getHonerPoint());
        return unionBaseInfo;
    }
}
